x86-64/MMCFG: finally make Fam10 enabling work
authorJan Beulich <jbeulich@novell.com>
Mon, 25 Jul 2011 15:42:53 +0000 (16:42 +0100)
committerJan Beulich <jbeulich@novell.com>
Mon, 25 Jul 2011 15:42:53 +0000 (16:42 +0100)
commit4297249197a5adf2c7517f6d55ed4273ce5e8a05
tree5f74b00680e9b010daf872aebb31d57297e7ec6f
parent278acdb073c35391c5dea22e1bd8179a3cef58bc
x86-64/MMCFG: finally make Fam10 enabling work

Forcibly enabling the MMCFG space on AMD Fam10 CPUs cannot be expected
to work since with the firmware not being aware of the address range
used it cannot possibly reserve the space in E820 or ACPI resources.
Hence we need to manually insert the range into the E820 table, and
enable the range only when the insertion actually works without
conflict.

Further, the actual enabling of the space is done from identify_cpu(),
which means that acpi_mmcfg_init() muts be called after that function
(and hance should not be called from acpi_boot_init()). Otherwise,
Dom0 would be able to use MMCFG, but Xen wouldn't.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/acpi/boot.c
xen/arch/x86/e820.c
xen/arch/x86/setup.c
xen/arch/x86/x86_32/pci.c
xen/arch/x86/x86_64/mmconf-fam10h.c
xen/include/asm-x86/e820.h